package fiuba.algo3.rango;

import fiuba.algo3.lugar.LugarRutaDeEscape;
import fiuba.algo3.lugar.LugarDelSospechoso;
import fiuba.algo3.lugar.LugarBalazo;
import fiuba.algo3.lugar.LugarFueraRutaDeEscape;
import fiuba.algo3.lugar.LugarCuchillazo;
import fiuba.algo3.mundo.Pais;
import fiuba.algo3.rango.Detective;
import fiuba.algo3.rango.Investigador;
import fiuba.algo3.rango.Novato;
import fiuba.algo3.rango.Rango;
import fiuba.algo3.rango.Sargento;

public class Policia
{
	
	Rango rango;
	
	public Policia(Rango r){
		this.rango = r;
	}
	
	public Policia(int cantidadArrestos){
		if (cantidadArrestos<5){
			this.rango = Novato.obtenerRango();
		}
		else if (cantidadArrestos>=5 && cantidadArrestos<10){
			this.rango = Detective.obtenerRango();
		}
		else if (cantidadArrestos>=10 && cantidadArrestos<20){
			this.rango = Investigador.obtenerRango();
		}
		else if (cantidadArrestos>=20){
			this.rango = Sargento.obtenerRango();
		}
	}

	public int viajarDesdeHasta(Pais origen, Pais destino){
		
		return (this.rango).obtenerTiempoDesdeHasta(origen, destino);
	}
	
	public String entrarEn(LugarRutaDeEscape lugar){
		return (this.rango).obtenerPista(lugar);
	}
	
	public String entrarEn(LugarDelSospechoso lugar){
		return lugar.obtenerTextoCaptura();
	}
	
	public String entrarEn(LugarFueraRutaDeEscape lugar){
		return lugar.obtenerTextoSospechosoNoVisto();
	}
	
	public String entrarEn(LugarBalazo lugar) {
		return lugar.obtenerTextoBalazo();
	}

	public String entrarEn(LugarCuchillazo lugar) {
		return lugar.obtenerTextoCuchillazo();
	}

	public void setearRangoDetective() {
		rango = Detective.obtenerRango();
	}

	public void setearRangoInvestigador() {
		rango = Investigador.obtenerRango();	
	}
	
	public void setearRangoSargento() {
		rango = Sargento.obtenerRango();	
	}

	public String obtenerTextoRango() {
		return rango.obtenerTextoRango();
	}
}
